#ifndef DEQUETHREAD_H
#define DEQUETHREAD_H


#include <thread>
#include <mutex>
#include <atomic>
#include <condition_variable>
#include <functional>
#include <future>
#include <queue>
#include <type_traits>
#include <utility>
#include <vector>
#include <map>
#include <QMutex>
#include <QScopedPointer>
#include "MU_API.h"
#include "coroutine.h"
#include "src/define/func_define.h"

typedef std::future<void>          VoF;
typedef std::packaged_task<void()> task;

class DequeThread
{
public:
    DequeThread();
    void pushThread(VoF t);
    void exec();

private:
    std::deque<VoF> _p_furts;
    std::atomic<bool> allowRun;
};

#endif // DEQUETHREAD_H
